package aash.catalog.views.component;

import java.awt.Color;
import java.awt.Graphics;

/**
 * General interface for all ass components.
 * @author Aashintan
 */
public interface AashComponent {
    /**
     * Constant alpha = 0.99%.
     */
    float ALPHA_99 = 0.99F;
    /**
     * Constant alpha = 0.8%.
     */
    float ALPHA_80 = 0.8F;
    /**
     * Constant alpha = 0.5%.
     */
    float ALPHA_50 = 0.5F;
    /**
     * RGB range.
     */
    int RGB_RANGE = 255;

    /**
     * Set transparency level.
     * @param fAlpha ratio
     */
    void setAlpha(float fAlpha);

    /**
     * Get the color of the component.
     * @return the Color
     */
    Color getColor();

    /**
     * Set color.
     * @param c color
     */
    void setColor(Color c);

    /**
     * Paint method.
     * @param g Graphics
     * @Override JComponent paint
     */
    void paint(Graphics g);

    /**
     * RePaint method.
     * @Override JComponent repaint
     */
    void repaint();
}
